package demo1;

public class Test {

    //抽象类也是可以发生动态绑定，向上转型，多态，如drawMap方法
    public static void drawMap(Shape shape) {
        shape.draw();
    }

    public static void main(String[] args) {
        Duck duck = new Duck();
        Bear bear = new Bear();
        Fish fish = new Fish();

        drawMap(duck);
        drawMap(bear);
        drawMap(fish);

        //普通类也可以重写抽象类中的方法，并且进行动态绑定 --- 多态
        duck.test();
        bear.test();
        fish.test();

        //无法调用被static final private修饰的抽象方法
        //duck.print();
    }





}
